home *** CD-ROM | disk | FTP | other *** search
/ Games of Daze / Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso / x2ftp / msdos / libs / game10 / utils / gamedemo.pas < prev    next >
Pascal/Delphi Source File  |  1994-02-04  |  7KB  |  255 lines

  1. {$X+}
  2. Uses Tgk_Main,TGK_Text,TGK_IO,TGK_Anim,TGK_Snd,TGK_GP,TGK_BM,TGK_3D,TGK_File;
  3.  
  4. Const NrStars   = 17;
  5.  
  6. Var A,B        : Integer;
  7.     Jerry      : Array[1..2] of AnimType;
  8.     Music,Tune : MusicType;
  9.     Kabang     : SampleType;
  10.     Snork,Star : AnimType;
  11.     Stars      : Array[1..NrStars] of AnimType;
  12.     Gosh_A_Pic : SpriteType;
  13.  
  14. Procedure MakeDiamond(Nr:Word);
  15. Begin
  16.  InitObject(Nr);
  17.  AddPoint(Nr, 20, 10,-20);
  18.  AddPoint(Nr, 10, 20,-20);
  19.  AddPoint(Nr,-10, 20,-20);
  20.  AddPoint(Nr,-20, 10,-20);
  21.  AddPoint(Nr,-20,-10,-20);
  22.  AddPoint(Nr,-10,-20,-20);
  23.  AddPoint(Nr, 10,-20,-20);
  24.  AddPoint(Nr, 20,-10,-20);
  25.  AddSurface4(Nr,1,2,3,4,127,4);
  26.  AddSurface4(Nr,1,4,5,8,127,4);
  27.  AddSurface4(Nr,8,5,6,7,127,4);
  28.  
  29.  AddPoint(Nr, 60, 30,25); {9}
  30.  AddPoint(Nr, 30, 60,25);
  31.  AddPoint(Nr,-30, 60,25);
  32.  AddPoint(Nr,-60, 30,25);
  33.  AddPoint(Nr,-60,-30,25);
  34.  AddPoint(Nr,-30,-60,25);
  35.  AddPoint(Nr, 30,-60,25);
  36.  AddPoint(Nr, 60,-30,25);
  37.  AddSurface4(Nr,9,10, 2,1,125,1);
  38.  AddSurface4(Nr,10,11,3,2,126,22);
  39.  AddSurface4(Nr,11,12,4,3,125,1);
  40.  AddSurface4(Nr,12,13,5,4,126,22);
  41.  AddSurface4(Nr,13,14,6,5,125,1);
  42.  AddSurface4(Nr,14,15,7,6,126,22);
  43.  AddSurface4(Nr,15,16,8,7,125,1);
  44.  AddSurface4(Nr,16, 9,1,8,126,22);
  45.  
  46.  AddPoint(Nr,0,0,100);
  47.  
  48.  AddSurface3(Nr,17,10, 9,126,22);
  49.  AddSurface3(Nr,17,11,10,125,1);
  50.  AddSurface3(Nr,17,12,11,126,22);
  51.  AddSurface3(Nr,17,13,12,125,1);
  52.  AddSurface3(Nr,17,14,13,126,22);
  53.  AddSurface3(Nr,17,15,14,125,1);
  54.  AddSurface3(Nr,17,16,15,126,22);
  55.  AddSurface3(Nr,17, 9,16,125,1);
  56. End;
  57.  
  58. { Main program ;-)) }
  59.  
  60. Begin
  61. { Resource:='GAMEDEMO.RES';}
  62.  OpenGraphics;                           { Enter graphics mode }
  63.  Randomize;
  64.  MakeDiamond(1);                         { Initialize Vector-Object }
  65.  
  66.  LoadFont('Weird',1);                    { Load some fonts... }
  67.  LoadFont('Scribble',2);
  68.  SetTextJustify(CenterText,TopText);     { and set some text-options }
  69.  SetFont(1);
  70.  SetTextMode(Precision);                 { Slower, but hey, precise! }
  71.  
  72.  InitMusic(Music);                       { Initialize and load the }
  73.  LoadMusic(Music,'CRITICAL');            { musical scores... }
  74.  InitMusic(Tune);
  75.  LoadMusic(Tune,'COFFEE');
  76.  
  77.  InitSample(Kabang);                     { Our cowboy says "Bang!", }
  78.  LoadSample(Kabang,'SHOOT',True);
  79.  SetDigiVolume(100);                     { but not to loud... }
  80.  
  81.  InitAnimation(Jerry[1]);                { Initialize and load some }
  82.  LoadAnimation(Jerry[1],'SLOWLEFT');     { animations... }
  83.  InitAnimation(Jerry[2]);
  84.  LoadAnimation(Jerry[2],'SHOOT');
  85.  SetupAnimation(Jerry[1],320,120,AnimMove);
  86.  AnimationSpecs(Jerry[1],AnimXStep,-3);
  87.  
  88.  SetupAnimation(Jerry[2],30,120,AnimStatic);
  89.  
  90.  InitAnimation(Snork);
  91.  LoadAnimation(Snork,'SLEEPMAN');
  92.  AnimationSpecs(Snork,AnimSpeed,3);
  93.  
  94.  InitAnimation(Star);
  95.  LoadAnimation(Star,'STAR');
  96.  AnimationSpecs(Star,AnimPong,1);
  97.   For A:=1 to NrStars do                { This one is cloned a few times... }
  98.    Begin
  99.     CloneAnimation(Star,Stars[A]);
  100.     SetupAnimation(Stars[A],Random(320),Random(180)+10,AnimMove);
  101.     AnimationSpecs(Stars[A],AnimXStep,-(Random(4)+1));
  102.     Stars[A].CurFrame:=Random(Stars[A].NrFrames)+1; { random starting-frame }
  103.    End;
  104.  
  105.  ClearPage(2);                          { Draw a stupid background... }
  106.   For A:=0 to 39 do
  107.    Begin
  108.     HLine(0,39-A,319,47-A Div 3,2);
  109.     HLine(0,160+A,319,47-A Div 3,2);
  110.    End;
  111.  
  112.  StartMusic(Tune,0);                    { and get the show on the road }
  113.  
  114.   For A:=1 to 33 do
  115.    Begin
  116.     CurPage:=1-CurPage;
  117.     CopyPage(2,1-CurPage);
  118.     SetTextSize(A*3+1);
  119.     Outtext(160,A*3-20,1,1-CurPage,'PRESENTING');
  120.     Sync;
  121.     SetPage(1-CurPage);
  122.     WaitTimer(1,4,True);
  123.    End;
  124.  
  125.  CopyPage(1-CurPage,2);
  126.   For A:=1 to 100 do
  127.    Begin
  128.     CurPage:=1-CurPage;
  129.     CopyPage(2,1-CurPage);
  130.     HandleAnimation(Jerry[1],1-CurPage);
  131.     Sync;
  132.     SetPage(1-CurPage);
  133.     WaitTimer(1,7,True);
  134.    End;
  135.  
  136.   For A:=1 to Jerry[2].NrFrames do
  137.    Begin
  138.     CurPage:=1-CurPage;
  139.     CopyPage(2,1-CurPage);
  140.     HandleAnimation(Jerry[2],1-CurPage);
  141.     Sync;
  142.     SetPage(1-CurPage);
  143.      If A=6 then StartSample(Kabang,1); { "Kapow!" says our cowboy }
  144.     WaitTimer(1,10,True);
  145.    End;
  146.  
  147.  CopyPage(1-CurPage,2);
  148.  SetTextJustify(LeftText,TopText);
  149.   For A:=1 to 17 do
  150.    Begin
  151.     CurPage:=1-CurPage;
  152.     CopyPage(2,1-CurPage);
  153.     Outtext(320-A*10,125,1,1-CurPage,'GAME');
  154.     Sync;
  155.     SetPage(1-CurPage);
  156.    End;
  157.  
  158.  CopyPage(1-CurPage,2);
  159.  
  160.  InitSprite(Gosh_A_Pic);
  161.  GetImage(1,79,318,157,Gosh_A_Pic,2);
  162.  FRectangle(1,79,318,157,0,2);
  163.   For A:=1 to 26 do
  164.    Begin
  165.     CurPage:=1-CurPage;
  166.     CopyPage(2,1-CurPage);
  167.     PutImage(1,79-A*3,Gosh_A_Pic,1-CurPage);
  168.     Sync;
  169.     SetPage(1-CurPage);
  170.     WaitTimer(1,7,True);
  171.    End;
  172.  DisposeSprite(Gosh_A_Pic);
  173.  
  174.  SetupAnimation(Jerry[1],30,42,AnimMove);
  175.  CopyPage(1-CurPage,2);
  176.  FRectangle(25,40,60,80,0,2);
  177.   For A:=1 to 17 do
  178.    Begin
  179.     CurPage:=1-CurPage;
  180.     CopyPage(2,1-CurPage);
  181.     HandleAnimation(Jerry[1],1-CurPage);
  182.     Sync;
  183.     SetPage(1-CurPage);
  184.     WaitTimer(1,7,True);
  185.    End;
  186.  
  187.  MakeDiamond(1);
  188.  SetOrigin(1,60,100);
  189.  SizeObject(1,0.1);
  190.   For A:=1 to 17 do
  191.    Begin
  192.     CurPage:=1-CurPage;
  193.     CopyPage(2,1-CurPage);
  194.      For B:=1 to NrStars Do
  195.       HandleAnimation(Stars[B],1-CurPage);
  196.     SizeObject(1,1.1);
  197.     RotateObject(1,10,7,8);
  198.     HideObject(1);
  199.     DrawObjectFilled(1,1-CurPage);
  200.     Sync;
  201.     SetPage(1-CurPage);
  202.     WaitTimer(1,8,True);
  203.     SetOverallVolume(1-(A*(100/17))/100);
  204.    End;
  205.  
  206.  SetOverallVolume(0);
  207.  StopMusic;
  208.  StartMusic(Music,0);
  209.  A:=0;
  210.  SetTextJustify(CenterText,TopText);
  211.  SetFont(2);
  212.   Repeat
  213.    CurPage:=1-CurPage;
  214.    CopyPage(2,1-CurPage);
  215.     For B:=1 to NrStars Do
  216.      HandleAnimation(Stars[B],1-CurPage);
  217.    RotateObject(1,10,7,8);
  218.    HideObject(1);
  219.    DrawObjectFilled(1,1-CurPage);
  220.    Sync;
  221.    SetPage(1-CurPage);
  222.    Inc(A);
  223.     If A<30 then SetOverAllVolume(A/30);
  224.     If (A>30) and (A<170) then
  225.      Begin
  226.       SetupAnimation(Snork,(A-50)*2,140,AnimStatic);
  227.       HandleAnimation(Snork,1-CurPage);
  228.      End else If (A>=170) then HandleAnimation(Snork,1-CurPage);
  229.     If (A>200) and (A<216) then
  230.      OutText(160,199-(A-200),31-(A-200),1-CurPage,'Press any key to exit to DOS!');
  231.     If A=215 then OutText(160,183,15,2,'Press any key to exit to DOS!');
  232.    WaitTimer(1,8,True);
  233.   Until Keypressed;
  234.  
  235.  For A:=30 downto 0 do
  236.   Begin
  237.    SetOverallVolume(A/30);
  238.    WaitTimer(1,3,True);
  239.   End;
  240.  
  241.  Readkey;
  242.  DisposeMusic(Music);
  243.  DisposeMusic(Tune);
  244.  DisposeAnimation(Jerry[1]);
  245.  DisposeAnimation(Jerry[2]);
  246.  DisposeAnimation(Snork);
  247.  DisposeAnimation(Star);
  248.  DisposeFont(1);
  249.  DisposeFont(2);
  250.  DisposeSample(Kabang);
  251.  CloseGraphics;
  252.  Writeln('Goodbye...');
  253.  Writeln;
  254.  ClearKeybuffer;
  255. End.